import { createStore, createLogger } from 'vuex'
// 导入vuex数据持久化插件
import createPersistedState from 'vuex-persistedstate'

// 导入子模块
import user from './modules/user'
import cart from './modules/cart'
import cate from './modules/cate'
// vue2 =>  new Vuex.Store
// vue3 =>  createStore()
// 创建vuex实例并导出
export default createStore({
  // strict: true, // 开启严格模式
  // 注册子模块
  modules: {
    user,
    cart,
    cate
  },
  // 注册插件
  plugins: [
    /**
     * 用法：
     * 1. 默认直接调用createPersistedState()=》存储的key：vuex，存所有的
     * 2. 实际开发需求：自定义存储的key和按需存储？
     * 实现：createPersistedState(
     *  {
     *      key: 'yourkey', // 存储的属性名
            paths: [...] // 存储的模块名
     *  }
     * )
     */
    // 1. 数据持久化
    createPersistedState({
      key: 'rabbit-data-t5',
      paths: ['user', 'cart']
    }),
    // 2. 调试数据
    createLogger()
  ]
})
